package view;

import Controlador.CtlAdicionar;

import javax.swing.*;
import javax.swing.border.LineBorder;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Date;
import javax.swing.table.DefaultTableModel;

public class TelaAdicionar extends JPanel{

    private JTextField txtNomeEvento;
    private JTextField txtDescrioEvento;
    private JTextField txtDataEvento;
    private JTextField txtNomePrato;
    private JTextField txtDescrioPrato;
    private JTextField txtPrecoPrato;
   

    private String nomePrato;
    private int precoPrato;
    private String descricaoPrato;
    private JTable table;
    
    
    private String estabelecimentoEvento;
    private Date dataEvento;
    private String tipoEvento;
    private String descricaoEvento;

    private CtlAdicionar ctlAdicionar;
    
    private DefaultTableModel tiposEventosModel;
    private DefaultTableModel tiposPratoModel_1;
    private int idEstabelecimento;
    private JTable table_2;

    public TelaAdicionar(int idEstabelecimento) {
        ctlAdicionar = new CtlAdicionar();

        this.idEstabelecimento = idEstabelecimento;
        initialize();
    }


    public void initialize() {
        JPanel panel = new JPanel();
        panel.setBorder(new LineBorder(new Color(0, 0, 0)));
        panel.setBounds(10, 11, 260, 439);
        //frame.getContentPane().add(panel);
        panel.setLayout(null);
        panel.setBorder(BorderFactory.createLineBorder(Color.BLACK));


        JButton btnComentar = new JButton("Comentar");
        btnComentar.setBounds(10, 243, 89, 23);
        panel.add(btnComentar);

        JButton btnFotos = new JButton("Fotos");
        btnFotos.setBounds(160, 243, 89, 23);
        panel.add(btnFotos);

        JLabel lblSugerirEvento = new JLabel("Sugerir Evento");
        lblSugerirEvento.setBounds(10, 277, 184, 14);
        panel.add(lblSugerirEvento);

        txtNomeEvento = new JTextField();
        txtNomeEvento.setText("Nome:");
        txtNomeEvento.setBounds(10, 295, 239, 20);
        panel.add(txtNomeEvento);
        txtNomeEvento.setColumns(10);
        txtNomeEvento.setBorder(BorderFactory.createLineBorder(Color.BLACK));

        txtDescrioEvento = new JTextField();
        txtDescrioEvento.setText("Descrição:");
        txtDescrioEvento.setBounds(10, 326, 239, 43);
        panel.add(txtDescrioEvento);
        txtDescrioEvento.setColumns(10);
        txtDescrioEvento.setBorder(BorderFactory.createLineBorder(Color.BLACK));


        txtDataEvento = new JTextField();
        txtDataEvento.setText("Data:");
        txtDataEvento.setBounds(10, 391, 86, 20);
        panel.add(txtDataEvento);
        txtDataEvento.setColumns(10);
        txtDataEvento.setBorder(BorderFactory.createLineBorder(Color.BLACK));


        JButton btnAdicinar = new JButton("Adicionar");
        btnAdicinar.setBounds(160, 390, 89, 23);
        panel.add(btnAdicinar);
        btnAdicinar.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {

                try {
                    adicionarEvento();
                } catch (Exception e1) {
                    e1.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
                }

            }
        });


        
        tiposEventosModel = new DefaultTableModel() {
            @Override
            public boolean isCellEditable(int row, int column) {
                return column != 0;
            }
        };
        table = new JTable(tiposEventosModel);
        JScrollPane scrollPane = new JScrollPane(table);
        scrollPane.setBounds(10, 36, 239, 183);
        panel.add(scrollPane);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
        tiposEventosModel.setColumnIdentifiers(new String[]{"Nome", "Descricao"});
        
        

        JLabel lblAdicionarEventos = new JLabel("Adicionar Eventos");
        lblAdicionarEventos.setHorizontalAlignment(SwingConstants.CENTER);
        lblAdicionarEventos.setBounds(0, 0, 259, 25);
        panel.add(lblAdicionarEventos);
        lblAdicionarEventos.setBorder(BorderFactory.createLineBorder(Color.BLACK));


        JPanel panel_1 = new JPanel();
        panel_1.setBorder(new LineBorder(new Color(0, 0, 0)));
        panel_1.setBounds(303, 11, 250, 439);
        //frame.getContentPane().add(panel_1);
        panel_1.setLayout(null);
        panel_1.setBorder(BorderFactory.createLineBorder(Color.BLACK));


        JButton button = new JButton("Comentar");
        button.setBounds(8, 245, 89, 23);
        panel_1.add(button);

        JButton button_1 = new JButton("Fotos");
        button_1.setBounds(151, 245, 89, 23);
        panel_1.add(button_1);

        JLabel lblAdicionarEvento = new JLabel("Adicionar Evento");
        lblAdicionarEvento.setBounds(8, 277, 184, 14);
        panel_1.add(lblAdicionarEvento);

        txtNomePrato = new JTextField();
        txtNomePrato.setText("Nome");
        txtNomePrato.setColumns(10);
        txtNomePrato.setBounds(8, 295, 232, 20);
        panel_1.add(txtNomePrato);
        txtNomePrato.setBorder(BorderFactory.createLineBorder(Color.BLACK));


        txtDescrioPrato = new JTextField();
        txtDescrioPrato.setText("Descrição:");
        txtDescrioPrato.setColumns(10);
        txtDescrioPrato.setBounds(8, 326, 232, 43);
        panel_1.add(txtDescrioPrato);
        txtDescrioPrato.setBorder(BorderFactory.createLineBorder(Color.BLACK));


        txtPrecoPrato = new JTextField();
        txtPrecoPrato.setText("Pre\u00E7o");
        txtPrecoPrato.setColumns(10);
        txtPrecoPrato.setBounds(8, 391, 86, 20);
        panel_1.add(txtPrecoPrato);
        txtPrecoPrato.setBorder(BorderFactory.createLineBorder(Color.BLACK));


        JButton button_2 = new JButton("Adicionar");
        button_2.setBounds(151, 390, 89, 23);
        panel_1.add(button_2);
        button_2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {

                try {
                    ctlAdicionar.adicionarPrato(txtNomePrato.getText(), txtDescrioPrato.getText(), (int)Long.parseLong(txtPrecoPrato.getText()));
                } catch (Exception e1) {
                    e1.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
                }
            }
        });


        
       
        
        table_2 = new JTable(tiposPratoModel_1);
        JScrollPane scrollPane_1 = new JScrollPane(table_2);
        scrollPane_1.setBounds(8, 39, 232, 180);
        panel_1.add(scrollPane_1);

        
        tiposPratoModel_1 = new DefaultTableModel() {
            @Override
            public boolean isCellEditable(int row, int column) {
                return column != 0;
            }
        };
        tiposPratoModel_1.setColumnIdentifiers(new String[]{"Nome", "Descricao","Pre�o"});
        table_2 = new JTable(tiposPratoModel_1);
        table_2.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
       
        scrollPane_1.setColumnHeaderView(table_2);
        
        scrollPane_1.setViewportView(table_2);
        
        
        
        

        JLabel lblAdicionarPratos = new JLabel("Adicionar Pratos");
        lblAdicionarPratos.setHorizontalAlignment(SwingConstants.CENTER);
        lblAdicionarPratos.setBounds(0, 0, 250, 23);
        panel_1.add(lblAdicionarPratos);
        lblAdicionarPratos.setBorder(BorderFactory.createLineBorder(Color.BLACK));
        setLayout(null);

        add(panel);
        add(panel_1);
    }
	
	/*evento*/
	public void preencherData(Date dataEvento){
        this.dataEvento = dataEvento;
    }

	public void preencherDescricaoEvento(String descricaoEvento){
        this.descricaoEvento = descricaoEvento;
    }

	public void preencherEstabelecimento(String estabelecimentoEvento){
        this.estabelecimentoEvento = estabelecimentoEvento;
    }

	public void	preencherTipoEvento(String tipoEvento) {
        this.tipoEvento = tipoEvento;
    }

	public void adicionarEvento(){
        try {
            ctlAdicionar.adicionarEvento(Integer.toString(idEstabelecimento), txtNomeEvento.getText(), null, txtDescrioEvento.getText());
            tiposEventosModel.addRow(new Object[] {txtNomeEvento.getText(), txtDescrioEvento.getText()});

        } catch (Exception e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
            return;
        }

        displayMessage("Evento inserido com êxito");
    }



	/*prato*/
    public void preencherDescricao(String descricaoPrato){
        this.descricaoPrato = descricaoPrato;
    }
    public void preencherNome(String nomePrato){
        this.nomePrato = nomePrato;
    }

    public void preencherPreco(int precoPrato) {
        this.precoPrato = precoPrato;
    };

	public void adicionarPrato(){
        try {
            ctlAdicionar.adicionarPrato(nomePrato, descricaoPrato, precoPrato);
        } catch (Exception e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        }

        displayMessage("Prato inserido com sucesso");
    };


    public void displayMessage(String message){}

}
